import type { PaginationResponse, SimpleResponse } from "./api";

export interface User {
  id: number;
  username: string;
  profile?: {
    id: number;
    gender: number;
    photo: string;
    email: string;
    address: string;
  };
  roles?: Array<{
    id: number;
    name: string;
  }>;
}

export interface CreateUserRequest {
  username: string;
  password: string;
  profile?: {
    gender?: number;
    photo?: string;
    email?: string;
    address?: string;
  };
  roles?: Array<number>;
}

export interface UpdateUserRequest {
  username?: string;
  password?: string;
  profile?: {
    gender?: number;
    photo?: string;
    email?: string;
    address?: string;
  };
  roles?: Array<number>;
}

export type UserListResponse = PaginationResponse<User>;

export type UserResponse = SimpleResponse<User>;
